package com.xnyzc.lhy.mis.service.activity;

import com.xnyzc.lhy.mis.entity.activity.OaSysActivityDef;
import com.xnyzc.lhy.mis.entity.activity.OaSysActivityPeriod;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xnyzc.lhy.mis.entity.result.activity.ActivityInfoPeriodResult;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 活动周期 服务类
 * </p>
 *
 * @author haoyfa
 * @since 2019-12-16
 */
public interface IOaSysActivityPeriodService extends IService<OaSysActivityPeriod> {
    /**
     * 根据活动id获取状态="已结束"的活动周期
     * @param defId
     * @return
     */
    List<OaSysActivityPeriod> queryActivityPeriodList(Long defId);

    /**
     * 根据活动id获取状态="已结算"的活动周期Result
     * @param defId
     * @return
     */
    List<ActivityInfoPeriodResult> queryActivityPeriodResultList(Long defId);

    /**
     * 根据活动定义创建活动周期
     * @param createDate
     * @param oaSysActivityDef
     */
    void createActivityPeriod(Date createDate, OaSysActivityDef oaSysActivityDef);

    /**
     * 活动周期开始
     */
    void beginActivityPeriod();

    /**
     * 活动周期结束
     */
    void endActivityPeriod();

    /**
     * 活动周期完成
     */
    void completeActivityPeriod();

    /**
     * 活动周期结算
     */
    void calActivityPeriodReward();
}
